home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 7.3 KB | 282 lines | [TEXT/MPS ] |
- (**-------------------------------------------------------------------------------*
- | |
- | <<< Pascal Library Interface >>> |
- | |
- | Copyright Apple Computer, Inc. 1986, 1992, 1994 |
- | All rights reserved. |
- | |
- *-------------------------------------------------------------------------------**)
-
- (*
- Interface to the Pascal I/O and Memory Manager Library.
- Built-in procedure and* function declarations are marked with
- the (* *) comment characters
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE PasLibIntf;
-
- IMPORT SYSTEM, Types, Files;
-
- (* $IF UNDEFINED UsingAliases AND UNDEFINED __ALIASES__*)
- (* $I $$Shell(PInterfaces)Aliases.p*)
- (* $END*)
-
- (* $ALIGN MAC68K*)
- (* $SETC UsingIncludes := PASLIBINTFIncludes*)
-
- TYPE
- PASCALPOINTER* = SYSTEM.PTR (*ΔΔ POINTER TO INTEGER*); (* Universal POINTER type *)
- PASCALFILE* = LONGINT (*ΔΔ FILE*); (* Universal FILE type *)
- (*
- * PASCALBLOCK* = (* Universal block of chars *)
- * (*ΔΔPACKEDΔΔ*) ARRAY [0..511] OF CHAR;
- *)
-
- CONST
- (* <StdIO.h> PLSetVBuf styles *)
- _IOFBF* = $00; (* File buffering *)
- _IOLBF* = $40; (* Line buffering *)
- _IONBF* = $04; (* No buffering *)
-
- (*
- Mac Pascal heap management
- *)
-
- PROCEDURE PLHeapInit*(sizepheap: LONGINT; heapDelta: LONGINT;
- memerrProc: (*ΔΔUNIVΔΔ*) PASCALPOINTER; allowNonCont: BOOLEAN;
- forDispose: BOOLEAN);
- EXTERNAL PASCAL;
- (*
- The following procedure is* obsolete, use PLHeapInit
- *)
-
- PROCEDURE PLInitHeap*(sizepheap: LONGINT; memerrProc: (*ΔΔUNIVΔΔ*) PASCALPOINTER;
- allowNonCont: BOOLEAN; allowDispose: BOOLEAN);
- EXTERNAL PASCAL;
-
- PROCEDURE PLSetNonCont*(allowNonCont: BOOLEAN);
- EXTERNAL PASCAL;
-
- PROCEDURE PLSetMErrProc*(memerrProc: (*ΔΔUNIVΔΔ*) PASCALPOINTER);
- EXTERNAL PASCAL;
-
- PROCEDURE PLSetHeapType*(forDispose: BOOLEAN);
- EXTERNAL PASCAL;
-
- PROCEDURE PLSetHeapCheck*(DoIt: BOOLEAN);
- EXTERNAL PASCAL;
-
- (*
- File I/O
- *)
-
- (*
- * PROCEDURE
- * RESET(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE; OPT fname: STRING);
- * BUILTIN;
- *
- * PROCEDURE
- * REWRITE(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE; OPT fname: STRING);
- * BUILTIN;
- *
- * PROCEDURE
- * OPEN(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE; fname: STRING);
- * BUILTIN;
- *)
-
- PROCEDURE PLSetVBuf*(VAR fvar: LONGINT (*ΔΔ TEXT*); buffer: (*ΔΔUNIVΔΔ*) PASCALPOINTER;
- style: INTEGER; bufsize: INTEGER);
- EXTERNAL PASCAL;
- (*
- * PROCEDURE
- * BLOCKREAD(
- * VAR fvar: FILE;
- * VAR buffer: (*ΔΔUNIVΔΔ*) PASCALBLOCK;
- * nBlocks: INTEGER;
- * OPT stBlock:INTEGER
- * ):
- * INTEGER;
- * BUILTIN;
- *
- * PROCEDURE
- * BLOCKWRITE(
- * VAR fvar: FILE;
- * VAR buffer: (*ΔΔUNIVΔΔ*) PASCALBLOCK;
- * nBlocks: INTEGER;
- * OPT stBlock:INTEGER
- * ):
- * INTEGER;
- * BUILTIN;
- *
- * PROCEDURE
- * BYTEREAD(
- * VAR fvar: FILE;
- * VAR buffer: (*ΔΔUNIVΔΔ*) PASCALBLOCK;
- * nBytes: LONGINT;
- * OPT stByte: LONGINT
- * ):
- * LONGINT;
- * BUILTIN;
- *
- * PROCEDURE
- * BYTEWRITE(
- * VAR fvar: FILE;
- * VAR buffer: (*ΔΔUNIVΔΔ*) PASCALBLOCK;
- * nBytes: LONGINT;
- * OPT stByte: LONGINT
- * ):
- * LONGINT;
- * BUILTIN;
- *
- * PROCEDURE
- * EOF(OPT VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE):
- * BOOLEAN;
- * BUILTIN;
- *
- * PROCEDURE
- * EOLN(OPT VAR fvar: TEXT):
- * BOOLEAN;
- * BUILTIN;
- *
- * PROCEDURE
- * READ(VAR fvar: TEXT; OPT EXPR_LIST);
- * BUILTIN;
- *
- * PROCEDURE
- * READLN(OPT VAR fvar: TEXT; OPT EXPR_LIST);
- * BUILTIN;
- *
- * PROCEDURE
- * WRITE(VAR fvar: TEXT; OPT EXPR_LIST);
- * BUILTIN;
- *
- * PROCEDURE
- * WRITELN(OPT VAR fvar: TEXT; OPT EXPR_LIST);
- * BUILTIN;
- *
- * PROCEDURE
- * GET(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE);
- * BUILTIN;
- *
- * PROCEDURE
- * PUT(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE);
- * BUILTIN;
- *
- * PROCEDURE
- * SEEK(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE; recno: LONGINT);
- * BUILTIN;
- *)
-
- PROCEDURE PLFilePos*(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE): LONGINT;
- EXTERNAL PASCAL;
-
- PROCEDURE PLFlush*(VAR fvar: LONGINT (*ΔΔ TEXT*));
- EXTERNAL PASCAL;
-
- PROCEDURE PLCrunch*(VAR fvar: (*ΔΔUNIVΔΔ*) PASCALFILE);
- EXTERNAL PASCAL;
-
- (*
- Directory operations.
- *)
-
- PROCEDURE PLPurge*(fname: Types.Str255 (*ΔΔ STRING*));
- EXTERNAL PASCAL;
-
- PROCEDURE PLRename*(oldFname, newFname: Types.Str255 (*ΔΔ STRING*));
- EXTERNAL PASCAL;
-
- (*
- Miscellaneous Operations
- *)
-
- (* The following definition has been moved to MacRuntime.p *)
- (* PROCEDURE TrapAvailable*(trap: INTEGER): BOOLEAN; *)
-
- (* The following functions can no longer be called directly from Pascal.
- They have been replaced by IExxxxx glue routines, defined below. *)
-
- (*
- PROCEDURE ResolveFolderAliases* (volume: INTEGER; directory: LONGINT;
- path: Types.Str255; resolveLeafName: BOOLEAN;
- VAR theSpec: Files.FSSpec; VAR isFolder, hadAlias,
- leafIsAlias: BOOLEAN): Types.OSErr; C;
-
- PROCEDURE MakeResolvedFSSpec* (volume: INTEGER; directory: LONGINT;
- path: Types.Str255; VAR theSpec: Files.FSSpec; VAR isFolder,
- hadAlias, leafIsAlias: BOOLEAN): Types.OSErr; C;
-
- PROCEDURE MakeResolvedPath* (volume: INTEGER; directory: LONGINT; path: Types.Str255;
- resolveLeafAlias: BOOLEAN; VAR buffer: Types.Str255;
- VAR isFolder, hadAlias, leafIsAlias: BOOLEAN):
- Types.OSErr; C;
- *)
-
- PROCEDURE IEResolveFolderAliases* (volume: INTEGER; directory: LONGINT;
- path: Types.Str255; resolveLeafName: BOOLEAN;
- VAR theSpec: Files.FSSpec; VAR isFolder, hadAlias,
- leafIsAlias: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
-
- PROCEDURE IEMakeResolvedFSSpec* (volume: INTEGER; directory: LONGINT;
- path: Types.Str255; VAR theSpec: Files.FSSpec; VAR isFolder,
- hadAlias, leafIsAlias: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
-
- PROCEDURE IEResolvePath* (VAR rawPath: Types.Str255; VAR resolvedPath: Types.Str255;
- VAR isFolder, hadAlias: BOOLEAN): Types.OSErr;
- EXTERNAL PASCAL;
-
- PROCEDURE IEMakeResolvedPath* (volume: INTEGER; directory: LONGINT; path: Types.Str255;
- resolveLeafAlias: BOOLEAN; VAR buffer: Types.Str255;
- VAR isFolder, hadAlias, leafIsAlias: BOOLEAN):
- Types.OSErr;
- EXTERNAL PASCAL;
- (*
- C string functions for Pascal strings
- *)
- PROCEDURE PLStrCmp*(string1, string2: Types.Str255): INTEGER;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrnCmp*(string1, string2: Types.Str255; n: INTEGER): INTEGER;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrCpy*(VAR string1: Types.Str255; string2: Types.Str255): Types.StringPtr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrnCpy*(VAR string1: Types.Str255; string2: Types.Str255; n: INTEGER): Types.StringPtr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrCat*(VAR string1: Types.Str255; string2: Types.Str255): Types.StringPtr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrnCat*(VAR string1: Types.Str255; string2: Types.Str255; n: INTEGER): Types.StringPtr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrChr*(string1: Types.Str255; c: CHAR): Types.Ptr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrrChr*(string1: Types.Str255; c: CHAR): Types.Ptr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrPBrk*(string1, string2: Types.Str255): Types.Ptr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrSpn*(string1, string2: Types.Str255): INTEGER;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrStr*(string1, string2: Types.Str255): Types.Ptr;
- EXTERNAL PASCAL;
-
- PROCEDURE PLStrLen*(string1: Types.Str255): INTEGER;
- EXTERNAL PASCAL;
-
- PROCEDURE PLPos*(STRING1: Types.Str255; STRING2: Types.Str255): INTEGER;
- EXTERNAL PASCAL;
-
- (* $ALIGN RESET*)
-
- END PasLibIntf.
-